//
// Created by 罗玉龙 on 2017/6/28.
//

#include <iostream>

using namespace std;

int testDynamicMemory() {
    double *pvalue = NULL; // 初始化为 null 的指针
    pvalue = new double;   // 为变量请求内存

    *pvalue = 29494.99;     // 在分配的地址存储值
    cout << "Value of pvalue : " << *pvalue << endl;

    delete pvalue;         // 释放内存


//    数组的动态内存分配

    //一维数组
    //动态分配,数组长度为 m
    int m = 10;
    int *arrayOne = new int[m];
    //释放内存
    delete[] arrayOne;

    char* pvalues = NULL;
    pvalues = new char[20];
    delete [] pvalues;

    //二维数组
    int **arrayTwo;
    int n = 10;
    //假定数组第一维长度为 m， 第二维长度为 n
    //动态分配空间
    arrayTwo = new int *[m];
    for( int i=0; i<m; i++ )
    {
        arrayTwo[i] = new int [n]  ;
    }
    //释放
    for( int i=0; i<m; i++ )
    {
        delete [] arrayTwo[i];
    }
    delete [] arrayTwo;

    return 0;
}